1. Technical Field
The present invention relates to the field of client server applications and the distribution of application updates. More particularly, the instant invention relates to a method and apparatus for distributing application updates while a host platform for the application is still active.
2. Description of the Related Art
In typical computing environments, there is often a need to provide an automated method for distributing software from a server to one or more client applications. Computing environments are typically composed of one or more servers which provide localized or specialized services to one or more clients. These distributed environments result in information being spread across various heterogenous data stores. One of the consequences of having information spread across heterogeneous data stores is that data can easily be duplicated. However, spurious duplication often results in inconsistent updating.
Various methods have been employed to provide an efficient solution for performing operations on data in a distributed computed environment. In particular, operations can include, locating, adding, deleting, and modifying the data. One solution involves utilizing a directory service acting as a central repository for storing all data within an environment. In this solution, the directory service is the single point from which the data contained therein is manipulated.
The use of a directory service for storing and accessing data in a distributed environment can be advantageous in several respects. A directory service provides a single central resource for managing resources that may be localized as in a local area network (LAN), or distributed as in a wide area network (WAN). Additionally, since there is only a single central repository, resources within the environment can be replicated to ensure peak performance and also for redundancy purposes.
Since the directory service defines a single format for storing data, other applications having disparate storage formats can, through a single interface, communicate with the directory service. Since the single open format allows interoperability among various vendors, applications from other vendors can easily be shared with the directory service. Moreover, the single format is flexible enough that it can easily be extended to permit future growth that might occur as a result of technical advances or simply due to a need to scale the size of the operating environment.
Given these advantages, several directory service technologies have been created to access data stores. Among these methodologies is a Lightweight Directory Access Protocol (LDAP). LDAP defines a model for storing entries in a directory service and a method for accessing these entries in a directory service. LDAP provides access to the directory service through the use of a TCP/IP connection. The data stored in a directory service can include, but is not limited to, user information, application updates and configuration information.
An entry is the basic data unit entity in the LDAP technology. An entry is an object that contains persistent information about a specific resource. Each entry has a unique identifier referred to as a distinguished name (DN), and belongs to a directory information tree (DIT). Each entry of the LDAP is composed of a collection of attributes with each attribute defining some specific characteristic of the entry. Each attribute is associated with a specific value type.
Many attempts have been made to automate the distribution of software in the client-server environment. However, present solutions lack the capability to perform realtime application updates and software distribution to active applications without having to reboot the supporting platform. Additionally, present automated software distribution systems do not support realtime updates of configuration data without first shutting down all active applications and subsequently rebooting the platform. Thus, there exists a need for efficiently distributing application updates and configuration to a host platform while the host platform is still actively running other applications.